Spring Boot Jasypt Kullanımı: application.properties Şifreleme Rehberi (2026)
Spring Boot Jasypt entegrasyonu ile application.properties şifreleme işlemini güvenli ve pratik şekilde yapabilirsiniz. Bu rehberde Jasypt nedir, nasıl kurulur, Spring Boot ile nasıl entegre edilir ve production ortamında hangi güvenlik best practice’leri uygulanmalıdır adım adım öğreneceksiniz.
Jasypt Nedir? Ne İşe Yarar?
Jasypt (Java Simplified Encryption), Java uygulamalarında şifreleme (encryption) ve şifre çözme (decryption) işlemlerini basitleştiren bir kütüphanedir. Özellikle Spring Boot Jasypt starter sayesinde uygulama konfigürasyon dosyalarındaki hassas bilgileri güvenli şekilde koruyabilirsiniz.
- Veritabanı şifrelerini gizler
- API key ve secret bilgilerini korur
- application.properties içeriğini güvenli hale getirir
- Production ortamında güvenlik seviyesini artırır
Spring Boot Projesine Jasypt Entegrasyonu
1️⃣ Maven Bağımlılığı
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.4</version>
</dependency>
Bu bağımlılık ile Spring Boot, şifreli property değerlerini otomatik olarak çözebilir.
Jasypt ile Şifreleme Nasıl Yapılır?
Jasypt ile şifreleme iki farklı yöntemle yapılabilir:
1️⃣ CLI (Komut Satırı) ile Şifreleme
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI \
input="my_secret_password" \
password=masterKey \
algorithm=PBEWithHMACSHA512AndAES_256
⚠️ Not: Modern projelerde PBEWithMD5AndDES yerine AES tabanlı algoritmalar tercih edilmelidir.
2️⃣ Online Tool ile Şifreleme
Alternatif olarak Jasypt CLI aracı veya online şifreleme araçları kullanılabilir. Ancak production ortamı için CLI önerilir.
application.properties İçinde Kullanımı
Şifrelenmiş değeri şu şekilde kullanabilirsiniz:
spring.datasource.password=ENC(encrypted_value_here)
Uygulama başlatılırken master şifre environment variable olarak verilmelidir:
mvn -Djasypt.encryptor.password=masterKey spring-boot:run
Production ortamında bu değeri environment variable olarak tanımlamanız önerilir.
@EnableEncryptableProperties Kullanımı
@EnableEncryptableProperties
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Bu anotasyon sayesinde Spring Boot, ENC() ile işaretlenmiş değerleri otomatik olarak çözer.
Production Güvenlik Best Practices (2026)
- Master key kod içine yazılmamalıdır.
- Environment variable veya secrets manager kullanılmalıdır.
- AES-256 algoritması tercih edilmelidir.
- Vault (HashiCorp) gibi secret management çözümleri değerlendirilmelidir.
- CI/CD pipeline içinde master key saklanmamalıdır.
Jasypt Performans Etkisi Var mı?
Jasypt yalnızca uygulama başlangıcında property çözümü yaptığı için runtime performansa ciddi bir etkisi yoktur. Ancak yüksek güvenlikli algoritmalar CPU maliyetini artırabilir.
Sonuç
Spring Boot Jasypt kullanımı, modern backend projelerinde güvenlik standartlarını yükseltmek için etkili ve pratik bir çözümdür. Özellikle hassas verilerin bulunduğu sistemlerde property şifreleme zorunlu hale gelmiştir.
Spring Boot güvenliği hakkında daha fazla bilgi için Spring Security rehberine göz atabilirsiniz.